package com.shj.web.util;

import com.shj.web.config.JwtConfig;
import com.shj.web.security.entity.SelfUserEntity;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

/**
 * @Description TODO JWT工具类
 * @Author songhuajian
 * @Date 2020/3/12 22:26
 **/
public class JwtTokenUtil {

    /**
     * 生成token
     */
    public static String createAccessToken(SelfUserEntity userEntity){
        // 登陆成功生成JWT
        return Jwts.builder()
                // 放入用户id
                .setId(userEntity.getUserId() + "")
                // 用户名
                .setSubject(userEntity.getUsername())
                // 签发时间
                .setIssuedAt(new Date())
                // 签发者
                .setIssuer("song")
                // 自定义属性 放入用户拥有的权限
                //.claim("authorities", userEntity.getAuthorities())
                // 失效时间
                .setExpiration(new Date(System.currentTimeMillis() + JwtConfig.expiration))
                // 签名算法和密钥
                .signWith(SignatureAlgorithm.HS256, JwtConfig.secret)
                .compact();
    }
}
